iT邦幫忙

2023 iThome 鐵人賽

DAY 4
0
自我挑戰組

Rayeee 的 TypeScript 的學習日記系列 第 4

<20230905> Day4. Types 有哪些呢

  • 分享至 

  • xImage
  •  

昨天建立好一個可以簡單執行 TypeScript 的環境, 但今天還不會用到 ,今天要來講講 TypeScript 中有哪些 Types (型別)

在第一天有提到關於 TypeScript

  • 我們最後還是在執行 JavaScript
  • TypeScript 是 JavaScript + Type system

所以 TypeScript 的型別和 JavaScript 基本上是一樣的,只是有衍伸幾種出去
在 JavaScript 中,所有 value 都有自己的 type,type 分成兩大類:

  • 原始資料型別(Primitive
  • 物件型別(Object)

https://ithelp.ithome.com.tw/upload/images/20230905/20162544IYBCgqV2gP.png

原始資料型別

原始資料型別 JavaScript 使用者應該大部分都不陌生

御三家 string, number, boolean

let testString = 'test';
let testNumber = 2023;
let testBoolean = true;

// in typescript
let testString: string = 'test';
let testNumber: number  = 2023;
let testBoolean: boolean = true;

常見的 null, undefined
null 表示存在,但是「沒有東西」
undefined 表示「不存在」

void 表示一個函式沒有返回值,像下面的 function 的返回型別就是 void,調用 testVoid 不會得到任何返回值

function testVoid() {
    console.log('---');
}

// in typescript
function testVoid(): void {
    console.log('---');
}

bigInt, symnbol 這兩個型別我則是完全沒有用過,有興趣可以看 來數數 JavaScript 的所有資料型別

物件型別(Object)

物件型別 functions, arrays, classes, objects
基本上除了原始資料型別都算是物件型別的
JavaScript 中熟悉的 function, array 都算是
JavaScript 類別 (Class) 產生的物件,Class new 出來的實體 Instance 也算

Other

上面是 JavaScript 本身就有的型別,也有一些是 TypeScript 才有的型別或是比較少用的如:

any遇事不決先用 any ,用來表達任意類型的型別,用之後 TypeScript 就不會檢查它的型別了,後面會提到不要濫用它

enum,枚舉,用來表示一組命名的常數

never 用來表示永遠不會發生的值,目前沒有用過,看起來是用在無窮系列函式的回傳

tuple,元組,不是 TypeScript 獨有的,只是我目前用到的次數不多所以放在這,這代表知道長度、且知道裡面每個參數的型別的 Array,我理解是加強版的龜毛陣列,長度、參數的型別順序都是固定的

等等等等

參考資料

<20230905> 日記,希望每天都看的到藍天

經過兩天的颱風,今天上班途中看到路旁的幾棵老樹居然被連根拔起
就覺得台灣的路樹規劃真的好虐待植物,只給植物一點點方格空間放土、旁邊直接灌水泥,多出來的樹根直接把它鋸掉不讓他長,抓地不夠難怪遇到颱風的時候會垮掉,但好像也是選了不適合的樹當做行道樹的關係,也算是歷史共業 ...

安息吧樹樹


上一篇
<20230904> Day3. 無情的環境建置
下一篇
<20230906> Day5. 型別推論及型別註釋 Type Inference & Type Annotations 簡介一下下
系列文
Rayeee 的 TypeScript 的學習日記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言